package com.ldl.customize.service.system;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ldl.customize.dao.UserMapper;
import com.ldl.customize.entity.User;
import com.ldl.customize.entity.UserExample;
import com.ldl.customize.util.Utils;

/**
* @ClassName: LoginService
* @Description: 登录相关service
* @author LDL
* @date 2014年4月18日 下午5:15:29
*
 */
@Service
public class LoginService {

	@Autowired(required = false)
	private UserMapper userMapper;

	/**
	 * 验证用户
	* @Title: authenticateUser
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @param @param username
	* @param @param password
	* @param @return    设定文件
	* @return String    返回类型
	* @throws
	 */
	public String authenticateUser(String username,String password){

		UserExample example = new UserExample();
		example.createCriteria().andUserNameEqualTo(username)
		.andUserPasswordEqualTo(password);
		List<User> usersList = userMapper.selectByExample(example);
		if(usersList!=null&&usersList.size()>0){

			if(!usersList.get(0).getUserStatus().equals("0")){
				//账号状态不正常
				return "1";
			}else{
				//登录成功
				return "0";
			}
		}
		//用户名密码错误
		return "2";
	}

	/**
	* @Title: checkEmail
	* @Description: 检测邮箱是否注册
	* @param @param email
	* @param @return    设定文件
	* @return String    返回类型
	* @throws
	 */
	public boolean checkEmail(String email){
		boolean flag = false;
		UserExample example = new UserExample();
		example.createCriteria().andUserEmailEqualTo(email);
		//查询邮箱是否注册
		List<User> usersList = userMapper.selectByExample(example);
		if(usersList!=null&&usersList.size()>0){
			flag = true;
		}
		return flag;
	}
	/**
	* @Title: checkName
	* @Description: 检测用户名是否被注册
	* @param @param name
	* @param @return    设定文件
	* @return boolean    返回类型
	* @throws
	 */
	public boolean checkName(String name){
		boolean flag = false;
		UserExample example = new UserExample();
		example.createCriteria().andUserNameEqualTo(name);
		//查询用户名是否被注册(本来可以和邮箱一块查的，但为了适应前台显示不得已只能这样写)
		List<User> usersList = userMapper.selectByExample(example);
		if(usersList!=null&&usersList.size()>0){
			flag = true;;
		}
		return flag;
	}

	/**
	* @Title: saveUser
	* @Description: 保存用户信息
	* @param @param user    设定文件
	* @return void    返回类型
	* @throws
	 */
	public void saveUser(User user){
		//保存数据
		user.setUserId(Utils.getUUID());
		user.setUserStatus("0");
		userMapper.insert(user);
	}
}
